/**
 * @describe 开卡订单-数据翻译
 * @param {String/Number} (type) 翻译类型
 * @param {String/Number} (v) 翻译数据
 * @return {String} 
**/
export const translateData = (type, v) => {
    v = parseInt(v);
    switch (type) {
        case 1://操作类型
            return v == 1 ? '开成卡' : v == 2 ? '开白卡' : v == 3 ? '--' : v == 4 ? '实名补登' : v == 5 ? '实名登记' : v == 6 ? '开空卡' : v == 7 ? '过户办理' : v == 8 ? '补换卡' : '--';
            break;
        case 2://证件类型
            return v == 1 ? '身份证' : v == 2 ? '军官证' : v == 3 ? '护照' : v == 6 ? '居住证' : void 0;
            break;
        case 3://卡盟统计报表查询操作类型
            return v == 1 ? '开卡' : v == 2 ? '激活商户' : v == 3 ? '过户' : v == 4 ? '实名补登' : v == 5 ? '补换卡' : '--';
            break;
        case 4://号卡状态
            return v == 1 ? '初始状态' : v == 2 ? '成功' : v == 3 ? '失败' : v == 4 ? '订单关闭' : '--';
            break;
        case 5://靓号等级
            var level = ["普号", "特级", "一级", "二级", "三级", "四级", "五级", "六级", "七级", "八级", "九级", "十级", "十一级"];
            return v || v == 0 ? level[parseInt(v)] : '未知';
            break;
        case 7://进行中，已关闭，订单状态
            return v == 1 || v == 1000 ? '已选号' : v == 2 || v == 1001 ? '已选套餐' : v == 3 || v == 1003 ? '已上传资料' : v == 4 || v == 1004 ? '已支付' : v == 5 || v == 1005 ? '已审核' : v == 6 || v == 1006 ? '已审核，待支付' : v == 7 || v == 1007 ? '已获取IMSI' : v == 8 || v == 1008 ? '已开卡申请' : v == 0 ? '--' : void 0;
            break;
        case 8://进行中，已关闭的补换卡订单状态
            return v == 1 || v == 1001 ? '已上传资料' : v == 2 || v == 1002 ? '已审核' : v == 3 || v == 1003 ? '生成受理单' : v == 4 || v == 1004 ? '已提交受理单' : v == 5 || v == 1005 ? '已获取imsi' : v == 6 || v == 1006 ? '已申请换补卡' : v == 7 || v == 1007 ? '已收到回调' : void 0;
            break;
        case 9://卡盟统计报表查询设备类型
            return v == 1 ? '森瑞' : v == 2 ? '握奇' : v == 3 ? '卡尔' : '--';
            break;
        case 10://开卡码号类型 
            return v == -1 ? '全部' : v == 0 ? '大众号' : v == 1 ? '预存号' : v == 2 ? '专营号' : '--';
            break;
        case 11://开卡当前状态
            return v == 1001 ? '生成订单' : v == 1002 ? '支付' : v == 1003 ? '获取imsi' : v == 1004 ? '写卡成功' : '--';
            break;
        case 12://开卡制卡付款方式
            return v == 1 ? '远特账户' : v == 2 ? '微信' : v == 3 ? '支付宝' : v == 0 ? '未支付' : '--';
            break;
        case 13://开卡制卡结果
            return v == 1 ? '进行中' : v == 2 ? '制卡成功' : v == 3 ? '制卡失败' : v == 4 ? '订单关闭' : v == 5 ? '已激活' : '--';
            break;
        case 14://卡类型
            return v == 4 ? '成卡' : v == 5 ? '白卡' : v == 6 ? '空卡' : '--';
            break;
        case 15://开卡方式
            return v == 1 ? '卡盟APP' : v == 2 ? '远特i卡' : v == 3 ? '远特eSIM' : v == 4 ? 'SDK' : v == 5 ? 'eSIM助手' : v == 6 ? '远微商城' : v == 7 ? '信时空公众号' : v == 8 ? 'S2S开卡盟成卡' : v == 9 ? '行牛' : '--';
            break;
        case 16://短信验证
            return v == 1 ? '是' : v == 0 ? '否' : '--';
            break;
        case 17://号卡状态
            return v == 4 ? '开成卡' : v == 5 ? '开白卡' : v == 6 ? '开空卡' : v == 7 ? '过户' : v == 8 ? '实名补登' : v == 9 ? '补换卡' : '--';
            break;
        case 18://号卡状态
            return v == 0 ? '未激活' : v == 1 ? '预占' : v == 2 ? '成卡' : v == 3 ? '已激活' : '--';
            break;
    }
}
/**
 * @describe 秒数格式化
 * @param {String/Number} (v) 秒
 * @return {String} 
**/
export const secondsFormat = (v = 0) => {
    v = parseInt(v);
    var day, minute, second, hour;
    day = Math.floor(v / (60 * 60 * 24));
    hour = Math.floor(v % (60 * 60 * 24) / (60 * 60));
    minute = Math.floor(v % (60 * 60) / 60);
    second = Math.floor(v % 60);
    hour < 10 && (hour = '0' + hour);
    minute < 10 && (minute = '0' + minute);
    second < 10 && (second = '0' + second);

    return day != '00' ? day + "天" + hour + ":" + minute + ":" + second :
        hour != '00' ? hour + ":" + minute + ":" + second :
            minute != '00' ? "00:" + minute + ":" + second : "00:00:" + second;
}
/**
 * @describe 获取窗口宽高
 * @param 
 * @return {Object} 
**/
export const getWindowWidthAndHeight = () => {
    return {
        windowHeight: document.documentElement.clientHeight || window.innerHeight || document.body.clientHeight,
        windowWidth: document.documentElement.clientWidth || window.innerWidth || document.body.clientWidth
    }
}
/**
 * @describe 去抖函数
 * @param {String} (time) 抖动时间
 * @param {Function} (action) 抖动执行函数
**/
export const debounce = function (time, action) {
    return function () {
        let ctx = this, args = arguments;

        clearTimeout(window.LastDebounce)
        window.LastDebounce = setTimeout(function () {
            action.apply(ctx, args)
        }, time)
    }
};
/**
 * 正则验证函数
 */
export const regularValid = function (type, value) {
    let valid = false

    switch (type) {
        case 'int+':// 正整数
            valid = /^[0-9]+$/.test(value)
            break
        case 'float':// 保留后两位校验
            valid = /^[-+]?[0-9]+\.?[0-9]{0,2}$/.test(value)
            break
        case 'phone':// 手机号码校验
            valid = /^1[3-9]\d{9}$/.test(value)
            break
        case 'name':// 账户名，数字+字母+下划线组合
            valid = !/\W+/.test(value)
            break
        case 'password':// 密码校验，非法字符
            valid = !/[`~()|{}':;',\[\].<>/?~！￥……&*（）——|{}【】‘；：”“'。，、？]/.test(value)
            break
    }
    return valid
}